package com.czk.oom;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Random;

/**
 * 堆内存溢出测试
 *
 * @Author:ChenZhangKun
 * @Date: 2021/7/30 11:48
 */
@RestController
public class JavaHeapSpaceController {
    /**
     * 使用是循环创建对象，是堆内存溢出
     */
    @GetMapping("/javaHeapSpace")
    public void javaHeapSpace() {
        String str = "hello world";
        while (true) {
            str += new Random().nextInt(1111111111) + new Random().nextInt(222222222);
            /**
             *  intern()方法：
             * （1）当常量池中不存在这个字符串的引用，将这个对象的引用加入常量池，返回这个对象的引用。
             * （2）当常量池中存在这个字符串的引用，返回这个对象的引用；
             */
            str.intern();
        }
    }
}
